package teama.servlet;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import teama.bean.MailBean;
import teama.constant.Constant;
import teama.logic.MailSend;
import teama.logic.MailSendCreateFactory;

/**
 * メール送信サーブレット
 * @author izumi
 *
 */
public class MailSendServlet extends HttpServlet {

	/**
	 * シリアルバージョンUID
	 */
	private static final long serialVersionUID = 1L;

	/**
	 * コンストラクタ
	 */
	public MailSendServlet() {
		super();
	}

	/**
	 * GETリクエスト時の処理
	 * @param HttpServletRequest リクエスト
	 * @param HttpServletResponse レスポンス
	 */
	 protected void doGet(HttpServletRequest request,
	            HttpServletResponse response)
	            throws ServletException, IOException {

		 // 処理呼び出し
		 dispach(request, response);
	 }

		/**
		 * POSTリクエスト時の処理
		 * @param HttpServletRequest リクエスト
		 * @param HttpServletResponse レスポンス
		 * @throws ServletException サーブレット例外
		 * @throws IOException 入出力例外
		 */
	 protected void doPost(HttpServletRequest request,
	            HttpServletResponse response)
	            throws ServletException, IOException {
	        request.setCharacterEncoding("Shift_JIS");
	        response.setContentType("text/html;charset=Shift_JIS");

	        // 処理呼び出し
	        dispach(request, response);
	    }

	 /**
	  * フォワード処理
	  * doGet、doPost両方からcallする共通処理
	  * @param request リクエスト
	  * @param response レスポンス
	  * @throws ServletException サーブレット例外
	  * @throws IOException 入出力例外
	  */
	 private void dispach(HttpServletRequest request,
	            HttpServletResponse response) throws ServletException, IOException {


		 String threadFlg = request.getParameter(Constant.REQ_KEY_THREAD_FLG);

		 try {
			 MailSend sendObj = MailSendCreateFactory.createFactory(threadFlg);

			 MailBean bean = new MailBean(request);

			 sendObj.sendMail(bean);

		 } catch (Throwable th) {
			 th.printStackTrace();
		}
		 ServletContext context = this.getServletContext();
		 RequestDispatcher dispatcher
            	= context.getRequestDispatcher("/pages/mail_form_g.jsp");
		 	// フォワード
	        dispatcher.forward(request, response);
	 }

}
